Adapt CLI to wdl.20260718.1#6
Merged
Merged
Conversation
Expose workflow-definition lifecycle state and align compatibility, D1, Durable Object, R2, secret, JSRPC, and Workflows contracts. Pin the packaged Wrangler fallback to 4.112.0, reject newly unmapped config fields, and disable update checks and telemetry for CLI-launched Wrangler processes. Refresh bilingual user and agent documentation and add focused regression coverage. Signed-off-by: Lu Zhang <lu@wdl.dev>
There was a problem hiding this comment.
Pull request overview
Updates the WDL companion CLI to match the wdl.20260718.1 control-plane contracts, tightening deploy/config validation and aligning user-facing output and docs with current platform capabilities.
Changes:
- Extend worker lifecycle rendering to include workflow-definition state and refine delete dry-run messaging to report state presence accurately.
- Pin the packaged Wrangler fallback to
4.112.0, reject newly unmapped Wrangler config keys, and disable Wrangler banner/metrics in the dry-run subprocess. - Synchronize bilingual guides/docs + agent references, and add focused regression tests for the updated contracts and diagnostics.
Reviewed changes
Copilot reviewed 30 out of 31 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/unit/cli-lifecycle.test.js | Adds/updates regression coverage for workers listing (workflow defs), delete dry-run messaging, and control-error compaction/escaping. |
| tests/unit/cli-deploy.test.js | Extends deploy/config validation tests for newly rejected Wrangler fields and compatibility-flag error hints; verifies Wrangler env scrubbing. |
| tests/unit/cli-config-doctor.test.js | Covers (unavailable) namespace URL behavior when /whoami omits the namespace URL. |
| templates/AGENTS.md | Updates generated-project guidance for compatibility-date/flags policy and deploy/service binding references. |
| package.json | Pins wrangler to 4.112.0 and updates jsonc-parser/smol-toml and dev tooling versions. |
| package-lock.json | Locks dependency graph to match the updated/pinned package.json versions (including wrangler/workerd/miniflare). |
| lib/wrangler/config.js | Rejects additional unsupported Wrangler config keys (addresses, dependencies_instrumentation). |
| lib/wrangler/command.js | Scrubs control env and disables Wrangler banner + metrics in the dry-run child environment. |
| lib/workers-format.js | Escapes terminal control chars in worker list output and adds `workflow-defs=(yes |
| lib/delete-format.js | Extends worker delete formatting for workflow definition presence and updates dry-run phrasing. |
| GUIDE.md | Updates English guide for new contracts/limits, Wrangler dry-run behavior, and worker workflow-definition state semantics. |
| GUIDE-zh.md | Mirrors GUIDE.md updates in Chinese, keeping bilingual docs aligned. |
| docs/workflows.md | Adds updated workflow limits and new error guidance (workflow_metadata_contention). |
| docs/workflows-zh.md | Chinese sync of workflows limits/error guidance. |
| docs/secrets.md | Updates secret key constraints documentation (grammar/length/reserved keys). |
| docs/secrets-zh.md | Chinese sync of secrets constraints. |
| docs/README.md | Adds deploy/service-binding topic link in the English docs index. |
| docs/README-zh.md | Adds deploy/service-binding topic link in the Chinese docs index. |
| docs/r2.md | Documents Headers-based httpMetadata.Expires IMF-fixdate requirement. |
| docs/r2-zh.md | Chinese sync of R2 Expires requirement. |
| docs/durable-objects.md | Documents updated DO RPC/body/name constraints. |
| docs/durable-objects-zh.md | Chinese sync of DO constraints. |
| docs/deploy.md | Documents Wrangler dry-run env behavior, compatibility-date policy, workflow-defs semantics, and common error mapping. |
| docs/deploy-zh.md | Chinese sync of deploy documentation updates. |
| docs/d1.md | Documents D1 lifecycle error redaction behavior for outward 5xx responses. |
| docs/d1-zh.md | Chinese sync of D1 error redaction docs. |
| commands/workers.js | Updates wdl workers help text to reflect workflow-definition-only entries. |
| commands/deploy.js | Adds actionable hint for compatibility_flag_unsupported control errors. |
| commands/delete.js | Updates delete help text to include workflow definitions among deleted worker state. |
| CHANGELOG.md | Records user-visible behavior/toolchain changes and the deploy hint fix under Unreleased. |
| .claude/skills/wdl-deploy/SKILL.md | Syncs agent-facing deploy guidance with updated compatibility/telemetry policy and delegated capability notes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Show retired workflow definitions and document workflow_not_exported recovery. Derive local Worker URL scheme and port from CONTROL_URL while keeping CONTROL_CONNECT_HOST transport-only. Cover active and retired workflow output plus default and custom local ports. Signed-off-by: Lu Zhang <lu@wdl.dev>
Escape control-plane fields across workflow list, instance status, and lifecycle human output. Keep --json responses unchanged while routing lifecycle success lines through the single-line status writer. Clarify Wrangler update-check behavior and scope D1 5xx redaction docs to runtime/backend failures. Signed-off-by: Lu Zhang <lu@wdl.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
the current
wdl.20260718.1control contractswdl workers,wdl workflows list, and worker delete previewsfields, and disable Wrangler update checks and anonymous telemetry
CONTROL_URLscheme and port in local deploy outputwhile keeping
CONTROL_CONNECT_HOSTtransport-onlyregression coverage for the current WDL runtime surface
Impact
Workflow-definition-only worker entries are now visible, delete previews no
longer overstate blocked deletion, and retired Workflow definitions are marked
as
retired=yes. The docs explain that restarting a retired definition returnsworkflow_not_exporteduntil an active version exports that Workflow nameagain.
Local and self-hosted deploy summaries no longer assume port 8080. They derive
the Worker URL scheme and port from
CONTROL_URL; explicit 8080/18080/customports remain intact, while the default HTTP port is not printed.
Deploy diagnostics cover current unsupported compatibility flags and avoid
background Wrangler network traffic unrelated to project builds. The exact
Wrangler pin applies only to the CLI-packaged fallback; a Worker's project-local
Wrangler remains the preferred resolver source.
Validation
git diff --checknpm run lintnpm run typechecknpm test(516 tests)npm audit --audit-level=moderate(0 vulnerabilities)npm pack --dry-run(115 files)npm run test:integration:liveagainst the local WDL stack on port 8080(20 tests)
wdl.20260718.1stack on port 18080:whoami, deployexamples/hello-jsonc, request the exact printed Worker URL, and delete thetest Worker